/*
 * SystemDetails.java
 *
 * Created on Aug 23, 2003, 1:20 PM
 *
 * Copyright (c) 2003 The General Electric Company
 * 
 * @author Ramesh Venkitaswaran
 * 
 * @version AutoSC Octopus
 * 
 * Last modified by $Author: oliver $ 
 * 
 * Revision Number $Revision: 1.2 $
 * 
 */
package com.ge.healthcare.autosc.common.pojo.sysInfo;

import java.util.Date;

import com.ge.med.service.stp.dataaccessapi.DataItemException;
import com.ge.med.service.stp.gsccmw.clientif.SystemDetailsDataItem;

/**
 * Provides getters to access the system information retrieved from GSCC.
 *
 */

public class SystemDetails
{
	/**
	 * System ID
	 */
	private String systemId = null;

	/**
	 * Unique System number
	 */
	private String usn = null;

	/**
	 * Address ID
	 */
	private int addressId = 0;

	/**
	 * Room number associated with the system id
	 */
	private String roomNumber = null;

	/**
	 * The name of the site where the system is installed
	 */
	private String name = null;

	/**
	 * Area code of the site's phone number
	 */
	private String officeAreaCode = null;
    
	/**
	 * The phone number of the site, excluding the area code
	 */
	private String officePhoneNumber = null;

	/**
	 * Phone Extension 
	 */
	private String officePhoneExtension = null;

	/**
	 * When the system was installed
	 */
	private Date beginDate = null;

	/**
	 * User comments
	 */
	private String comment = null;

	/**
	 * Whether the system is entitled to Insite or not
	 */
	private String insiteEntitlement = null;

	/**
	 * If entitled, when was it checked out
	 */
	private Date insiteCheckedDate = null;

	/**
	 * Whether the agreement was signed with GE
	 */
	private String agreementSigned = null;

	/**
	 * The system type
	 */
	private String systemType = null;
    
	/**
	 * Mobile Location Number
	 */
	private String mln = null;

	/**
	 * LCT
	 */
	private String lct = null;

	/**
	 * Record last modified in GSCC by
	 */
	private String lastModifiedBy = null;

	/**
	 * Record last modified in GSCC on
	 */
	private Date lastModifiedDate = null;

	/**
	 * The type of room
	 */
	private String roomType = null;

	/**
	 * The ID of the site in which the system resides
	 */
	private int siteId = 0;

	/**
	 * The ID of the customer for the site
	 */
	private String customerId = null;

	/**
	 * The name of the site
	 */
	private String siteName = null;

	/**
	 * The area code portion of the site's phone number
	 */
	private String siteOfficeAreaCode = null;
    
	/**
	 * The phone number for the site
	 */
	private String siteOfficePhone = null;

	/**
	 * Service Center Code for the site
	 */
	private String serviceCenterCode = null;

	/**
	 * Description of the service center code
	 */
	private String serviceCenterDesc = null;

	/**
	 * The ISO code for the service Center
	 */
	private String serviceCenterIsoCode = null;

	/**
	 * Country in which the service center belongs
	 */
	private String serviceCenterCountryCode = null;

	/**
	 * The name of the country in where the svc center resides
	 */
	private String serviceCenterCountryName = null;

	/**
	 * ISO Code for the country
	 */
	private String isoCode = null;

	/**
	 * Country Code in as stored in the GE Mainframe
	 */
	private String countryCode = null;

	/**
	 * Name of the country
	 */
	private String countryName = null;

	/**
	 * State in which the system is located
	 */
	private String stateName = null;
    
	/**
	 * Zip code 
	 */
	private String postalZip = null;

	/**
	 * purpose and/or data in this field are unknown and unused.  If this changes update comments appropriately.
	 */
	private String dgCode = null;

	/**
	 * When the system was decommissioned
	 */
	private Date deCommissionedDate = null;

	/**
	 * When the system was decommissioned
	 */
	private Date deCommissioned1 = null;

	/**
	 * Modality to which the system belongs
	 */
	private String modalityCode = null;

	/**
	 * Description of the modality Code
	 */
	private String modalityDesc = null;

	/**
	 * The product line to which the system belongs
	 */
	private String productLineCode = null;

	/**
	 * Description of the product line
	 */
	private String productLineDesc = null;

	/**
	 * Model type of the system
	 */
	private String modelTypeCode = null;

	/**
	 * Description of the model type
	 */
	private String modelTypeDesc = null;

	/**
	 * purpose and/or data in this field are unknown and unused.  If this changes update comments appropriately.
	 */
	private String peopleCode = null;

	/**
	 * Employee number of the primary FE assigned to the site
	 */
	private String primaryFeEmployeeNumber = null;

	/**
	 * FE's first name
	 */
	private String feFirstName = null;

	/**
	 * FE's middle name
	 */
	private String feMidName = null;

	/**
	 * FE's last name.
	 */
	private String feLastName = null;

	/**
	 * The pole in which the system resides.
	 */
	private String pole = null;
    
	/**
	 * Location of the pole for the service center.
	 */
	private String serviceCenterPole = null;
	
	/**
	 * @return The address id for the site.
	 */
	public int getAddressId()
	{
		return addressId;
	}

	public SystemDetails(){}
	
	/*
	 * This is the constructor that the MiddlewareFacade class will use to 
	 * populate the fields in this class.
	 */
	public SystemDetails( SystemDetailsDataItem dataItem ) 
		throws DataItemException 
	{
		systemId = dataItem.getSystemId();
		usn = dataItem.getUSN();
		addressId = dataItem.getAddressId();
		roomNumber = dataItem.getRoomNumber();
		name = dataItem.getName();
		officeAreaCode = dataItem.getOfficeAreaCode();
		officePhoneNumber = dataItem.getOfficePhoneNumber();
		officePhoneExtension = dataItem.getOfficePhoneExt();
		beginDate = dataItem.getBeginDate();
		comment = dataItem.getComment();
		insiteEntitlement = dataItem.getInsiteEntitlement();
		insiteCheckedDate = dataItem.getInsiteCheckedoutDate();
		agreementSigned = dataItem.getAgreementSigned();
		systemType = dataItem.getSystemType();
		mln = dataItem.getMLN();
		lct = dataItem.getLCT();
		lastModifiedBy = dataItem.getLastModifiedBy();
		lastModifiedDate = dataItem.getLastModifiedDate();
		roomType = dataItem.getRoomType();
		siteId = dataItem.getSiteId();
		customerId = dataItem.getCustomerId();
		siteName = dataItem.getSiteName();
		siteOfficeAreaCode = dataItem.getSiteOfficeAreaCode();
		siteOfficePhone = dataItem.getSiteOfficePhone();
		serviceCenterCode = dataItem.getSvcCode();
		serviceCenterDesc = dataItem.getSvcDesc();
		serviceCenterIsoCode = dataItem.getSvcIsoCode();
		serviceCenterCountryCode = dataItem.getSvcCountryCode();
		serviceCenterCountryName = dataItem.getSvcCountryName();
		isoCode = dataItem.getIsoCode();
		countryCode = dataItem.getCountryCode();
		countryName = dataItem.getCountryName();
		stateName = dataItem.getStateName();
		postalZip = dataItem.getPostalZip();
		dgCode = dataItem.getDgCode();
		deCommissionedDate = dataItem.getDeCommissioned();
		deCommissioned1 = null;
		modalityCode = dataItem.getModalityCode();
		modalityDesc = dataItem.getModalityDesc();
		productLineCode = dataItem.getProductLineCode();
		productLineDesc = dataItem.getProductLineDesc();
		modelTypeCode = dataItem.getModelTypeCode();
		modelTypeDesc = dataItem.getModelTypeDesc();
		peopleCode = dataItem.getPeopleCode();
		primaryFeEmployeeNumber = dataItem.getEmployeeNumber();
		feFirstName = dataItem.getFeFirstName();
		feMidName = dataItem.getFeMiddleName();
		feLastName = dataItem.getFeLastName();
		pole = dataItem.getPole();
		serviceCenterPole = dataItem.getSvcPole();
	}
	
	/**
	 * @return Yes/No value indicating whether the Insite agreement was signed.
	 */
	public String getAgreementSigned()
	{
		return agreementSigned;
	}

	/**
	 * @return Install date
	 */
	public Date getBeginDate()
	{
		return beginDate;
	}

	/**
	 * @return User comments.
	 */
	public String getComment()
	{
		return comment;
	}

	/**
	 * @return Country code that the system resides in. 
	 */
	public String getCountryCode()
	{
		return countryCode;
	}

	/**
	 * @return Name of the country associated with the country code.
	 */
	public String getCountryName()
	{
		return countryName;
	}

	/**
	 * @return ID of the customer associated with the system.
	 */
	public String getCustomerId()
	{
		return customerId;
	}

	/**
	 * @return purpose and/or data in this field are unknown and unused.  If this changes update comments appropriately.
	 */
	public String getDgCode()
	{
		return dgCode;
	}

	/**
	 * @return purpose and/or data in this field are unknown and unused.  If this changes update comments appropriately.
	 */
	public Date getDeCommissioned1()
	{
		return deCommissioned1;
	}

	/**
	 * @return Date on which the system was decommissioned.
	 */
	public Date getDeCommissionedDate()
	{
		return deCommissionedDate;
	}

	/**
	 * @return First name of the FE who's the primary for the system.
	 */
	public String getFeFirstName()
	{
		return feFirstName;
	}

	/**
	 * @return Last name of the FE who's the primary for the system.
	 */
	public String getFeLastName()
	{
		return feLastName;
	}

	/**
	 * @return Middle name of the FE who's the primary for the system.
	 */
	public String getFeMidName()
	{
		return feMidName;
	}

	/**
	 * @return Date on which the system was checked out for Insite.
	 */
	public Date getInsiteCheckedDate()
	{
		return insiteCheckedDate;
	}

	/**
	 * @return Whether the system is entitled for Insite.
	 */
	public String getInsiteEntitlement()
	{
		return insiteEntitlement;
	}

	/**
	 * @return ISO code for the country that the system is in.
	 */
	public String getIsoCode()
	{
		return isoCode;
	}

	/**
	 * @return Who modified the record in GSCC last.
	 */
	public String getLastModifiedBy()
	{
		return lastModifiedBy;
	}

	/**
	 * @return Date of last modification.
	 */
	public Date getLastModifiedDate()
	{
		return lastModifiedDate;
	}

	/**
	 * @return LCT in which the system is located.
	 */
	public String getLct()
	{
		return lct;
	}

	/**
	 * @return Mobile Location Number of the system.
	 */
	public String getMln()
	{
		return mln;
	}

	/**
	 * @return Modality code associated with the system.
	 */
	public String getModalityCode()
	{
		return modalityCode;
	}

	/**
	 * @return Description of the modality code.
	 */
	public String getModalityDesc()
	{
		return modalityDesc;
	}

	/**
	 * @return Model type code associated with the system.
	 */
	public String getModelTypeCode()
	{
		return modelTypeCode;
	}

	/**
	 * @return Description of the model type code.
	 */
	public String getModelTypeDesc()
	{
		return modelTypeDesc;
	}

	/**
	 * @return System Name
	 */
	public String getName()
	{
		return name;
	}

	/**
	 * @return Area code portion of the system's phone number.
	 */
	public String getOfficeAreaCode()
	{
		return officeAreaCode;
	}

	/**
	 * @return Phone extension.
	 */
	public String getOfficePhoneExtension()
	{
		return officePhoneExtension;
	}

	/**
	 * @return Phone number associated with the system.
	 */
	public String getOfficePhoneNumber()
	{
		return officePhoneNumber;
	}

	/**
	 * @return purpose and/or data in this field are unknown and unused.  If this changes update comments appropriately.
	 */
	public String getPeopleCode()
	{
		return peopleCode;
	}

	/**
	 * @return Pole in which the system resides.
	 */
	public String getPole()
	{
		return pole;
	}

	/**
	 * @return Zip code 
	 */
	public String getPostalZip()
	{
		return postalZip;
	}

	/**
	 * @return Employee number of the primary FE for the system.
	 */
	public String getPrimaryFeEmployeeNumber()
	{
		return primaryFeEmployeeNumber;
	}

	/**
	 * @return Product line code to which the system belongs to.
	 */
	public String getProductLineCode()
	{
		return productLineCode;
	}

	/**
	 * @return Description of the system's product line.
	 */
	public String getProductLineDesc()
	{
		return productLineDesc;
	}

	/**
	 * @return Room number 
	 */
	public String getRoomNumber()
	{
		return roomNumber;
	}

	/**
	 * @return Type of room for the system.
	 */
	public String getRoomType()
	{
		return roomType;
	}

	/**
	 * @return Service center code.
	 */
	public String getServiceCenterCode()
	{
		return serviceCenterCode;
	}

	/**
	 * @return Country code that the service center is located in.
	 */
	public String getServiceCenterCountryCode()
	{
		return serviceCenterCountryCode;
	}

	/**
	 * @return Country name where the service center is located in.
	 */
	public String getServiceCenterCountryName()
	{
		return serviceCenterCountryName;
	}

	/**
	 * @return Description of the service center code.
	 */
	public String getServiceCenterDesc()
	{
		return serviceCenterDesc;
	}

	/**
	 * @return ISO code for the service center.
	 */
	public String getServiceCenterIsoCode()
	{
		return serviceCenterIsoCode;
	}

	/**
	 * @return Pole in which the service center is located in.
	 */
	public String getServiceCenterPole()
	{
		return serviceCenterPole;
	}

	/**
	 * @return Site ID that the system id is associated with.
	 */
	public int getSiteId()
	{
		return siteId;
	}

	/**
	 * @return Name associated with the site ID.
	 */
	public String getSiteName()
	{
		return siteName;
	}

	/**
	 * @return Area code portion of the site's phone number.
	 */
	public String getSiteOfficeAreaCode()
	{
		return siteOfficeAreaCode;
	}

	/**
	 * @return Phone number (without area code) of the site.
	 */
	public String getSiteOfficePhone()
	{
		return siteOfficePhone;
	}

	/**
	 * @return State in which the system is located in.
	 */
	public String getStateName()
	{
		return stateName;
	}

	/**
	 * @return System ID of the system.
	 */
	public String getSystemId()
	{
		return systemId;
	}

	/**
	 * @return Type of system. 
	 */
	public String getSystemType()
	{
		return systemType;
	}

	/**
	 * @return System's unique system number.
	 */
	public String getUsn()
	{
		return usn;
	}

}
